package com.jvm123.mysql.repo;

import com.jvm123.mysql.entity.Person;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author yawn
 * 2019/9/15 17:02
 */
public interface PersonHqlDao extends JpaRepository<Person, Long> {

    // 使用hql 或者 jpql 查询
    @Query("from Person where name = ?1 order by id desc")
    List<Person> listByName(String name);

    // 前几种方法中均未介绍update操作，要完成update操作，可使用以下方法
    // 更新时需要加上 @Transactional 和 @Modifying
    @Transactional
    @Modifying // QueryExecutionRequestException: Not supported for DML operations
    @Query("update Person set name=?2 where id=?1")
    int updateNameById(long id, String name);
}
